(* tree.mli *)
 
type 'a tree
 
(* Constructeurs *)
val empty : 'a tree
val node : 'a tree -> 'a -> 'a tree -> 'a tree
 
(* Accesseurs *)
val is_empty : 'a tree -> bool
val is_leaf : 'a tree -> bool
 
(* Parcours *)
 
(* iter en profondeur (depth first) *)
val dfiter : ('a -> 'b) -> ('a -> 'c) -> ('a -> unit) -> 'a tree -> unit
 
(* Affichage "propre" *)
val print : ('a -> string) -> 'a tree -> unit

